#include "typwartosc.h"
#include <stdio.h>

/*
  typ przyjmuje
  error 'e'
  int 'i';
  char 'c';
  float 'f';
  double 'd';
  long 'l';
  char* 't'; // niezaimplementowane!
*/
int TypWartoscUstawTyp(TypWartosc * const tw, char typ) {
  if (typ=='t') {
    tw->typ = typ; return 0;
  } else if (typ=='c') {
    tw->typ = typ; return 1;
  } else if (typ=='i') {
    tw->typ = typ; return 2;
  } else if (typ=='l') {
    tw->typ = typ; return 3;
  } else if (typ=='f') {
    tw->typ = typ; return 4;
  } else if (typ=='d') {
    tw->typ = typ; return 5;
  } else {
    tw->typ = 'e'; return 0;
  }
}

int TypWartoscUstawNazwa(TypWartosc * const tw, char const * const nazwa) {
  int i=0;
  while(nazwa[i]!='\0' && i<6) {
    tw->nazwa[i] = nazwa[i];
    i++;
  }
  tw->nazwa[i] = '\0';
  return 1;
}

void TypWartoscUstawWartoscInt(TypWartosc * const tw, int i) {
  tw->w.i = i;
}


void TypWartoscUstawWartoscFloat(TypWartosc * const tw, float f) {
  tw->w.f = f;
}


void TypWartoscDrukuj(TypWartosc const * const tw) {
  if (tw->typ=='t') {
    printf("brak implementacji");
  } else if (tw->typ=='c') {
    printf("%c", tw->w.c);
  } else if (tw->typ=='i') {
    printf("%d", tw->w.i);
  } else if (tw->typ=='l') {
    printf("%ld", tw->w.l);
  } else if (tw->typ=='f') {
    printf("%f", tw->w.f);
  } else if (tw->typ=='d') {
    printf("%lf", tw->w.d);
  } else {
    printf("Blad");
  }
}